#ifndef HPLC_SPARKLINK_MAKEPACKET_H
#define HPLC_SPARKLINK_MAKEPACKET_H

#include "hplcsparklinkautosamplerprotocoldata.h"

namespace hplc
{
namespace sparklink
{

class HplcSparkLinkMakePacket
{
public:
    HplcSparkLinkMakePacket(HplcSparkLinkAutoSamplerProtocolData &data);

    void makeAck();
    void makeNAck();
    void makeNAck0();

    void add_10(quint8 value); // 个位数
    void add_100(quint8 value); // 2位数
    void add_1000(quint16 value);
    void add_10000(quint16 value);
    void add_100000(quint32 value);
    void add_1000000(quint32 value);

    void addGlobalId();
    void addId();
    void addAi(quint8 ai = 0x01);
    void addPfc(quint16 pfc);
    void addSpace(quint8 cnt = 1);
    void addZero(quint8 cnt);

    void preMakePacket();
    void postMakePacket();

private:
    void addHeadAndTail();

    HplcSparkLinkAutoSamplerProtocolData *m_d = nullptr;
};

} // sparklink
} // hplc

#endif // HPLC_SPARKLINK_MAKEPACKET_H
